<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /**
         *  promise对象.then(成功回调,失败的回调)
         * 
         *  p.then 的返回值，
         * 1. 首先是一个promise对象，它的状态和结果值，由他将要执行的成功或失败的回调函数的返回值决定
         * 
         * 2. 成功或失败的回调函数的返回值，如何决定res的状态呢？
         *    2-1. 返回非promise对象，那么res必然是一个成功的promise，成功的结果值就是返回值
         *    2-2. 返回promise对象：你成功我也成功，你成功的结果就是我成功的结果，你失败我也失败，你失败的结果，也是我失败的结果
         *    
         *    2-3. throw：必然是失败Promise，throw的值就是失败的结果值
         * 
         */

        let p = new Promise((resolve, reject)=>{
            // reject('error');
            throw 444;
        })

        let res = p.then(value=>{
            console.log('成功的回调: ', value);
            // return undefined;
            // return new Promise((resolve,reject)=>{
            //     resolve('999');
            // })
        }, reason=>{
            console.log('失败的回调: ', reason);
            // return 123123;
            // return new Promise((resolve, reject)=>{
            //     reject('666');
            // })
            throw 777;
        })

        console.log('res: ', res);

        
    </script>
</body>
</html>